<?php

declare(strict_types=1);
/**
 * This file is part of habo_new_media.
 *
 * @link     https://www.berlen.cn/
 * @contact  tech@berlen.cn
 * @license  http://gitlab.rehou.cn/habo/habo_new_media/-/blob/master/README.md
 */
namespace app\service\cdc\sync\account;


use app\enum\CdcEnum;
use app\enum\CommonEnum;
use app\model\mongo\MongoQqAccountSyncLogModel;
use app\model\mongo\MongoSyncModel;
use app\service\cdc\sync\LogInterface;

class QqAccountSyncLogService extends AccountLogService implements LogInterface
{

    /**
     * @var int 媒体ID
     */
    protected int $mediaId = CommonEnum::QQ_MEDIA;

    /**
     * 汇总模型列表.
     * @var array|string[]
     */
    protected array $statModelList = [
        CdcEnum::STAT_CLIENT => '\app\model\mongo\MongoClientAccountTypeDayStatModel',
        CdcEnum::STAT_PRODUCT => '\app\model\mongo\MongoProductAccountTypeDayStatModel',
        CdcEnum::STAT_MONTH => '\app\model\mongo\MongoClientMonthStatModel',
        CdcEnum::STAT_CLIENT_MEDIA => '\app\model\mongo\MongoClientMediaMonthStatModel',
    ];

    /**
     * 报表模型列表.
     * @var array|string[]
     */
    protected array $recordModelList = [
        CdcEnum::STAT_CLIENT => '\app\model\mongo\MongoQqAccountDayReportModel',
        CdcEnum::STAT_PRODUCT => '\app\model\mongo\MongoQqAccountDayReportModel',
        CdcEnum::STAT_MONTH => '\app\model\mongo\MongoQqAccountDayReportModel',
        CdcEnum::STAT_CLIENT_MEDIA => '\app\model\mongo\MongoQqAccountDayReportModel',
    ];

    /**
     * 获取媒体ID.
     * @return int
     */
    public static function getMediaId(): int
    {
        return CommonEnum::QQ_MEDIA;
    }

    /**
     * 获取中间表模型.
     */
    public static function getModel(): MongoSyncModel
    {
        return new MongoQqAccountSyncLogModel();
    }

    public static function getUserIdByAdvId(string $advId = ''): string
    {
        return '';
    }
}
